#define _CRT_SECURE_NO_WARNINGS
//作者：爱吃糖的boy
#include<stdio.h>
#include<string.h>
#include<assert.h>


// 字符转换函数
//int tolower(int c); //将参数传进去的⼤写字⺟转⼩写 
//int toupper(int c); //将参数传进去的⼩写字⺟转⼤写

#include <ctype.h>
//int main()
//{
//	int i = 0;
//	char str[] = "Test String.\n";
//	char c;
//	while (str[i])
//	{
//		c = str[i];
//		if (islower(c))
//			c = toupper(c);
//		putchar(c);
//		i++;
//	}
//	return 0;
//}

//int main() 
//{
//	//strlen的使⽤和模拟实现
//
//	return 0;
//}

int my_strlen(const char* str);
int main()
{
	const char* str1 = "abcdef";
	const char* str2 = "bbb";
	if (my_strlen(str2) - my_strlen(str1) > 0)//返回值为无符号整型  >= 0
	{
		printf("str2>str1\n");
	}
	else
	{
		printf("srt1>str2\n");
	}
	return 0;
}

////计数器⽅式
//int my_strlen(const char* str)
//{
//	int count = 0;
//	assert(str != NULL);
//	while (*str != '\0')
//	{
//		count++;
//		*str++;
//	}
//	return count;
//}

////指针-指针的⽅式
//int my_strlen(char* s)
//{
//	assert(s);
//	char* p = s;
//	while (*p != '\0')
//		p++;
//	return p - s;
//}

//不能创建临时变量计数器
int my_strlen(const char* str)  //递归方法
{
	assert(str);
	if (*str == '\0')
		return 0;
	else
		return 1 + my_strlen(str + 1);
}

//strcpy 的使⽤和模拟实现